1. Field of the Invention
The present invention relates to multimedia systems, and more particularly, to a storage and delivery system for multimedia objects in a computer environment, such as the World Wide Web.
2. Description of Related Technology
The World Wide Web (Web) is part of a global computer network known as the Internet. Scientists and academicians initially developed and used the Internet to share information and collaborate. The Web functions as an object based multimedia system. It allows for the creation, storage and delivery of multimedia objects. Recently, on-line service providers, such as Microsoft Network, CompuServe, Prodigy and America Online, have linked to the Web. This enables their customers to access a variety of information and communication services available from independent content providers and other Web users. For example, a typical customer can access electronic mail, news services, weather services, bulletin board services and travel services on the Web.
Independent content providers typically create pages to communicate information and services they provide for their Web customers. A customer views a page on a computer screen using a Web browser, such as Microsoft Explorer or Netscape Navigator, installed on the computer. The structure and appearance of a Web page are defined using HyperText Markup Language (HTML). The browser retrieves and interprets the HTML defining a page to display it on a user""s computer screen. A typical Web page may have multiple objects including HTML text, a background image, icons, audio and bitmaps for several images.
A Web browser accesses a page when a user enters a Universal Resource Locator (URL) or selects a link to a page""s URL using a pointing device such as a mouse or glide pad. The browser retrieves the page by first checking its cache of previously retrieved objects. In this context, a cache is a collection of previously requested objects that a browser maintains in local storage on the user""s computer. If the requested object data exists in cache, the browser fetches the object from the cache. Otherwise, the browser must retrieve the object from a remote computer over the Web. Data transfer over the Web is a very slow process when compared to retrieving the same object from a cache on the local disk of the user""s computer.
Data transfer speed is basically the result of the bandwidth and latency of a connection. Bandwidth is the speed with which data moves over a connection. Improved bandwidth results by increased carrier capacity and/or increased transmission speed over the carrier. For example, a user can increase the bandwidth of a Web connection over an analog phone line carrier by increasing the modem transmission speed from 14,400 bits per second to 28,800 bits per second. A user may similarly increase the bandwidth of a Web connection by using a digital phone line carrier, such as an Integrated Services Digital Network (ISDN) line, capable of carrying two data channels each at 64,000 bits per second. Latency refers to the delay between the time a request for data is made and the time that the data is received. It results from the logistics of establishing and maintaining a connection over a carrier involving various types of handshakes needed to initiate and complete data transfer. Thus, latency is usually independent of the size of the data being sent over the carrier.
Data transfers over the Web conform to the HyperText Transfer Protocol (HTTP). HTTP manages connections between those who request information, clients, and those who provide information, servers. In the HTTP model, a client establishes a connection to a remote server and then issues a request. The server processes the request, returns a response and closes the connection. Importantly, the HTTP model only permits a single transaction per connection. In addition, HTTP uses the Transmission Control Protocol (TCP) as a transport layer. A transport layer is a mechanism for the transfer of data between clients and servers that ensures delivery of in sequence, error-free data with no losses or duplications. TCP establishes connections using a three-part handshake as follows: the client sends a connection request, the server responds and the client acknowledges the response, at which time the client can also send data.
Certain design features of HTTP interact poorly with TCP causing problems with data transfer performance. Opening a connection to a server creates a latency of at least two round trips over the network because a client must wait for a server to send its connection response. Similarly, TCP uses a mechanism called slow start to negotiate the data transfer speed over a connection. To prevent overrunning a receiving computer, slow start initiates transfer at a low data transfer rate and progressively increases the data transfer rate as more chunks of data are received successfully. When transferring large amounts of data over a single connection, the impact of slow start and connection latency are minimal. However, when transferring small amounts of data over a large number of connections, the impact of slow start and latency from multiple connections is devastating.
In the early days of the Web, cumulative delays from slow start and connection latency were tolerable because early Web pages included a single HTML page with one or two images. However, the complexity of Web pages is increasing. Modern Web page designs include more objects, such as bitmaps, audio, ActiveX controls and Java Applets, and thus HTTP requires numerous transactions to transfer each page over the Web. Thus, the cumulative latency due to TCP handshaking and slow start becomes a substantial performance limitation. Moreover, a HTML page includes the names of referenced objects and a browser cannot request these referenced objects until it has retrieved and interpreted the HTML defining the page. Thus, the latency of retrieving the HTML defining a page can create a cascade of delays in requesting embedded objects. Cascaded round trip delays from opening multiple server connections to retrieve embedded objects and subsequent slow start delays often result in situations where users can do no useful work because the system is waiting instead of transmitting data.
Lastly, numerous HTTP transactions severely impact the data transfer performance of high-speed satellite and cable modem systems. In these systems, the transmission speed from a server to a client, the xe2x80x9cdownstreamxe2x80x9d connection, is substantially higher than the transmission speed from client to server, the xe2x80x9cupstreamxe2x80x9d connection. For example, wireless satellite links and cable modems are capable of transmitting data xe2x80x9cdownstreamxe2x80x9d at 10,000,000 bits/second rate while transmission of xe2x80x9cupstreamxe2x80x9d browser requests often occurs at a rate of 768,000 bits/second (a xe2x80x9cfractionalxe2x80x9d T1 connection, about 13 times slower). For a Web page having numerous objects, the slow speed xe2x80x9cupstreamxe2x80x9d request connection limits data transfer performance due to the response latency of multiple HTTP requests for these objects.
The present invention addresses these performance limitations by improving the efficiency of object retrieval and transfer in multimedia computer environments. In contrast to the multiple transactions currently required to retrieve multiple objects in HTTP, the present invention reduces the number of transactions to retrieve a set of n objects from n to 1, thereby substantially reducing the latency due to slow start and cascaded round trip delays from opening multiple server connections. This increases delivery performance and improves the user experience by substantially reducing the delays in the transfer and rendering of images on the user""s display.
The present invention includes data for multiple objects in a single data stream in an optimized interleaved format. Object data is interleaved with data definition entries identifying respective object data into a data format comprising a single stream for storage and delivery. The data format eliminates the need for multiple, asynchronous transactions. Moreover, the data format enables one to customize and optimize how the object data is prioritized and interleaved to achieve a desired effect on the viewer upon delivery of the multimedia data.
One aspect of the present invention includes a data format for storing, transferring and retrieving, in a computer environment having a storage, a stream of objects comprising object data packets stored within the storage for each object in the stream and at least one data definition entry corresponding to each object in the stream, wherein said at least one data definition entry is interleaved with said object data packets such that a data definition entry corresponding to one of the objects in the stream precedes any object data packets of said one object in the stream.
Another aspect of the present invention includes a system for transmitting a page comprising a data repository for a stream representing the page, wherein said stream comprises object data packets interleaved with data definition entries, a browser assembling said object data packets with reference to said data definition entries so as to display the page represented by said stream and a network communicating said stream between said data repository and said browser.
Lastly, another aspect of the present invention includes a system for transmitting a page comprising a data repository for a stream representing the page, wherein said stream comprises object data packets interleaved with data definition entries, a browser assembling said object data packets with reference to said data definition entries so as to display the page represented by said stream and a computer communicating said stream between said data repository and said browser.